public class Test {
    /*
    使用递归解决汉诺塔问题
    n:表示盘子的个数
    pos1:起始位置
    pos2:中转位置
    pos3:目的位置
     */
    public static void main (String[] args) {
        Hanoi(1,'A','B','C');
        System.out.println();
        Hanoi(2,'A','B','C');
        System.out.println();
        Hanoi(3,'A','B','C');
    }
    public static void Move (char pos1,char pos2) {
        System.out.print(" "+ pos1 +"->"+ pos2 +" " );
    }
    public static void Hanoi(int n,char pos1,char pos2,char pos3) {
        if (n == 1) {
            Move(pos1,pos3);
        }else {
            Hanoi(n-1,pos1,pos3,pos2);
            Move(pos1,pos3);
            Hanoi(n-1,pos2,pos1,pos3);
        }
    }
}
